package com.example.entity.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.example.entity.BaseData;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.Date;

/**
 * 数据库中的用户信息
 */
/**
 * Account类代表系统中的用户账户信息，实现了BaseData接口
 * 该类使用了@Data注解以简化getter和setter的编写，并使用@AllArgsConstructor注解生成包含所有字段的构造器
 */
@Data
@TableName("db_account")
@AllArgsConstructor
public class Account implements BaseData {
    /**
     * 用户ID，主键，自动增长
     * 使用@TableId注解标识该字段为数据库的主键，并指定IdType.AUTO表示自增
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 用户名，用于登录和显示
     */
    private String username;

    /**
     * 用户密码，用于登录验证
     */
    private String password;

    /**
     * 用户邮箱，可用于找回密码或接收通知
     */
    private String email;

    /**
     * 用户角色，决定用户的权限级别
     */
    private String role;

    /**
     * 用户头像的URL或路径
     */
    private String avatar;

    /**
     * 用户注册时间，用于记录用户账户创建的时间
     */
    private Date registerTime;
}

